/*
 * @Descripttion: 
 * @Author: liuYaoYu
 * @Date: 2021-12-02 15:08:35
 * @LastEditors: liuYaoYu
 * @LastEditTime: 2021-12-02 15:52:45
 */
package main 
import (
	 "fmt"
	_ "unsafe"
	 "strconv"
)
//  方式一  fmt.Sprintf
// golang 基本数据类型转 golang数据类型
// func main(){
// 	// var num1 int = 99
// 	var num2  float32 = 0.12321
// 	var b bool = true
// 	// var mychar byte = 'h'
// 	var str string
// 	//%d	表示为十进制
// 	// str = fmt.Sprintf("%d",num1)
// 	// fmt.Printf("str类型是 %T str的值是 %V",str,str)
// 	//%f	有小数部分但无指数部分，如123.456
// 	str = fmt.Sprintf("%f",num2)
// 	fmt.Printf("str类型是 %T str的值是 %v\n",str,str)


// 	str=fmt.Sprintf("%t",b)
// 	fmt.Printf("str的类型是 %T 值为 %v\n",str,str)
// 	fmt.Printf("str的类型是 %T 值为 %q\n",str,str)
// }

// 方式二 使用 strconv 包 有对应的函数方法
func main(){
	var num1 int32 = 255
	var num2 float32 = 32.12321
	var b2 bool = true
	var str string 
	// 第二个 参数为进制  最大为36进制
	str= strconv.FormatInt(int64(num1), 10)
	fmt.Printf("str type %T  value %d  \n" ,str,str)

	//  参数分别为 值  转换的格式  保留几位（精度）  什么格式的数据来源
	str=strconv.FormatFloat(float64(num2),'f',5 ,64)
	fmt.Printf("str type %T  value %f  \n" ,str,str)

	str=strconv.FormatBool(b2)
	fmt.Printf("str type %T  value %v  \n" ,str,str)

	// 直接转换  int 转 string 只能是 int类型
	var num3 int64 = 12311
	str=strconv.Itoa(int(num3))
	fmt.Printf("str type %T  value %v  \n" ,str,str)

}